package biz.gieraltowski.lukships;

import java.awt.Graphics2D;
import java.awt.image.BufferedImage;

public abstract class Actor {

	/** Pozycja obiektu na scenie */
	protected int x, y;

	/** Wymiary obiektu */
	protected int width, height;
	
	/**
	 * Nazwą aktora jest nazwa pliku obrazka
	 * przykład: /martna.gif
	 */
	protected String spriteName;
	protected Stage stage;
	protected SpriteCache spriteCache;
	protected abstract void act();
	
	/**
	 * Konstruktor
	 * @param stage Do konstruktora przekazujemy obiekt sceny na której pracujemy (kontekst). Musimy wiedzieć na czym rysować obiekty.
	 */
	public Actor(Stage stage){
		this.stage = stage;
		spriteCache = stage.getSpriteCache();
	}
	
	/**
	 * Rysuje obiekty na scenie
	 * @param g
	 */
	public void paint(Graphics2D g){
		g.drawImage(spriteCache.getSprite(spriteName), x, y, stage);
	}
	

	public String getSpriteName() {
		return spriteName;
	}

	public void setSpriteName(String s) {
		spriteName = s;
		//po ustaleniu nazwy, można pobrać szerokość i wysokość obiektu
		width = spriteCache.getSprite(spriteName).getWidth();
		height = spriteCache.getSprite(spriteName).getHeight();
	}
	
	public int getX() {
		return x;
	}

	public void setX(int x) {
		this.x = x;
	}

	public int getY() {
		return y;
	}

	public void setY(int y) {
		this.y = y;
	}

	public int getWidth() {
		return width;
	}

	public void setWidth(int width) {
		this.width = width;
	}

	public int getHeight() {
		return height;
	}

	public void setHeight(int height) {
		this.height = height;
	}
	

	
	
}
